/*
 * [ConnectJDBCMySQL.java]
 *
 * Summary: demonstrate the how to connect to a MySQL Server Database with JBDC.
 *
 * Copyright: (c) 2007-2013 Roedy Green, Canadian Mind Products, http://mindprod.com
 *
 * Licence: This software may be copied and used freely for any purpose but military.
 *          http://mindprod.com/contact/nonmil.html
 *
 * Requires: JDK 1.7+
 *
 * Created with: JetBrains IntelliJ IDEA IDE http://www.jetbrains.com/idea/
 *
 * Version History:
 *  1.0 2007-09-17
 */
package Server.DataAccess;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import static java.lang.System.err;

/**
 * demonstrate the how to connect to a MySQL Server Database with JBDC.
 *
 * @author Roedy Green, Canadian Mind Products
 * @version 1.0 2007-09-17
 * @since 2007-09-17
 */
public abstract class ConnectJDBCMySQL
    {
    // ------------------------------ CONSTANTS ------------------------------

    /**
     * which database
     */
    private static final String DATABASENAME = "testyourself";

    /**
     * class name of the JDBC driver
     */
    private static final String DRIVERCLASSNAME = "com.mysql.jdbc.Driver";

    /**
     * access PASSWORD
     */
    private static final String PASSWORD = "";

    /**
     * login name of user
     */
    private static final String USERNAME = "root";

    // -------------------------- STATIC METHODS --------------------------

    /**
     * connect to the database
     */
    public static Connection getConnection() throws SQLException
        {
        // get JDBC connection to MySQL database.
        // Jar containing the Connector/J JDBC driver: mysql-connector-java-5.1.10-bin.jar must be downloaded and
        // placed on the classpath.
        // You must configure MySQL to allow external TCP/IP connections or else localhost won't work either.
        // Instantiate the MySQL JDBC driver. Using ClassForName/newInstance
        // rather than new means the driver need not be present at compile time.
        // Oddly, we need not retain a reference to the Driver object,
        // or even do a newInstance(), just load the class.
        try
            {
            Class.forName( DRIVERCLASSNAME );
            }
        catch ( Exception e )
            {
            err.println( "can't load MySQL Server driver: " + e.getMessage() );
            }
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + DATABASENAME,
                USERNAME,
                PASSWORD );
	
        return con;
        }
    }